#include "IndiceHash.h"
#include "../FuncionesUtiles.h"
#include "Elemento.h"

IndiceHash::IndiceHash(const string& path, TipoClave* extractor, cantBytes tamanioBucket):
	Indice(extractor), directorio(tamanioBucket,path,extractor) {

}

IndiceHash::~IndiceHash() {

}

bool IndiceHash::getNumComponente(Key clave,offset& numComponente) {

	Elemento elemento;
	bool exito =directorio.obtenerElemento(clave,elemento);

	if (!exito) {
		return false;
	}

	numComponente = elemento.getDato();
	return true;
}

bool IndiceHash::agregar(Key clave, offset numComponente) {

	Elemento elemento(clave,numComponente);
	return directorio.insertar(elemento);
}

bool IndiceHash::quitar(Key clave, offset &numComponente) {

	return directorio.borrar(clave,numComponente);
}

bool IndiceHash::existeClave(Key clave){

	return directorio.seEncuentraAlmacenada(clave);
}

void IndiceHash::visualizar() {
	this->directorio.imprimirDirectorio();
}
